EMails mit Python und Fastmail verschicken

Vor ein paar Wochen habe ich mich gefragt, wie man mit Fastmail und Python automatische EMails verschicken kann. Man kann ein paar Tutorials finden, aber keine fertige Lösung.

Nach ein bisschen Suchen habe sich selber eine kleine Funktion geschrieben, die in einem minimalen Beispiel zeigt, wie es geht:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
import email.message
import smtplib

def send_email(message_string, from_email, to_email, username, password):
    message = email.message.Message()
    message.set_payload(message_string)

    with smtplib.SMTP_SSL('smtp.fastmail.com', 465) as client:
        client.login(username, password)
        client.send_message(message, from_addr=from_email, to_addrs=to_email)

    return

Natürlich muss man ein Applikationspassword erstellen, das auf STMP zugreifen darf. Das geht unter Settings > Password & Security > App Passwords.